/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agencia;

import java.io.Serializable;
import javax.persistence.Entity; //Pasa clase a tabla
import javax.persistence.Id;
import javax.persistence.GeneratedValue; //Forma que se generan los ids
import javax.persistence.GenerationType; //Typos de datos

import javax.persistence.Table; //Personalizar nombre de tabla sino idem class
import javax.persistence.Transient; //para atributos que se equiran NO persistir
import javax.persistence.Column; //Personalizar nombre de columna en tabla sino idem class

import javax.persistence.CascadeType;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.JoinColumn;

import java.util.List;
import java.util.ArrayList;
import java.util.Date;

/**
 *
 * @author martin
 */
@Entity
public class CuentaCorriente {
    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private long idCuentaCorriente;

    private int numeroCuenta;
    private Date fechaApertura;
    private float descubierto;
    private float saldo;
    @OneToMany(cascade=CascadeType.ALL, fetch=FetchType.LAZY, mappedBy="cuentaCorriente")
//    @JoinColumn()//nullable=true x defecto, especifica q puede haber objetos sin fk
    private List<Cliente> dueños = new ArrayList<Cliente>();
    

    public CuentaCorriente() {
    }

    public CuentaCorriente(int numeroCuenta, float descubierto) {
        this.numeroCuenta = numeroCuenta;
        this.descubierto = descubierto;
    }

    public float getDescubierto() {
        return descubierto;
    }

    public void setDescubierto(float descubierto) {
        this.descubierto = descubierto;
    }

    public Date getFechaApertura() {
        return fechaApertura;
    }

    public void setFechaApertura(Date fechaApertura) {
        this.fechaApertura = fechaApertura;
    }

    public long getIdCuentaCorriente() {
        return idCuentaCorriente;
    }

    public void setIdCuentaCorriente(long idCuentaCorriente) {
        this.idCuentaCorriente = idCuentaCorriente;
    }

    public int getNumeroCuenta() {
        return numeroCuenta;
    }

    public void setNumeroCuenta(int numeroCuenta) {
        this.numeroCuenta = numeroCuenta;
    }

    public float getSaldo() {
        return saldo;
    }

    public void setSaldo(float saldo) {
        this.saldo = saldo;
    }

    public List<Cliente> getDueños() {
        return dueños;
    }

    public void setDueños(List<Cliente> dueños) {
        this.dueños = dueños;
    }
    
}
